using AiQiuQuan.Sport.Model.Enums;

namespace AiQiuQuan.Sport.Model.Models
{
    /// <summary>
    /// 教练dto
    /// </summary>
    public class CoacherDto : BaseDto
    {
        /// <summary>
        /// 用户ID
        /// </summary>
        public Guid UserId { get; set; }

        /// <summary>
        /// 是否认证
        /// </summary>
        public bool IsCertificated { get; set; }

        /// <summary>
        /// 1普通教练、2总教练
        /// </summary>
        public CoacherTypeEnum Type { get; set; }

        /// <summary>
        /// 图片
        /// </summary>
        public string? PicUrl { get; set; }

        /// <summary>
        /// 介绍
        /// </summary>
        public string Introduction { get; set; }

        /// <summary>
        /// 教练介绍
        /// </summary>
        public CoacherIntroductionDto IntroductionDto
        {
            get
            {
                if (string.IsNullOrWhiteSpace(Introduction))
                {
                    return null;
                }

                return System.Text.Json.JsonSerializer.Deserialize<CoacherIntroductionDto>(Introduction);
            }
        }

        /// <summary>
        /// 是否平台添加
        /// </summary>
        public bool IsPlatform { get; set; }

        /// <summary>
        /// 添加人ID
        /// </summary>
        public Guid AddUserId { get; set; }

        /// <summary>
        /// 是否展示
        /// </summary>
        public bool IsShow { get; set; }

        /// <summary>
        /// 添加人code
        /// </summary>
        public int AddUserCode { get; set; }

        /// <summary>
        /// 添加人角色，多个、隔开
        /// </summary>
        public string AddUserRole { get; set; }

        /// <summary>
        /// 是否推荐
        /// </summary>
        public bool IsRecommend { get; set; }

        /// <summary>
        /// 用户编码
        /// </summary>
        public int U_Code { get; set; }

        /// <summary>
        /// 昵称
        /// </summary>
        public string? U_NickName { get; set; }

        /// <summary>
        /// 头像
        /// </summary>
        public string? U_Headportrait { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        public string? U_RealName { get; set; }

        /// <summary>
        /// 电话
        /// </summary>
        public string? U_PhoneNum { get; set; }

        /// <summary>
        /// 省
        /// </summary>
        public Guid? ProvinceID { get; set; }

        /// <summary>
        /// 省
        /// </summary>
        public string? U_P_Name { get; set; }

        /// <summary>
        /// 市
        /// </summary>
        public Guid? CityID { get; set; }

        /// <summary>
        /// 市
        /// </summary>
        public string? U_C_Name { get; set; }

        /// <summary>
        /// 场馆列表
        /// </summary>
        public IList<CoacherVenueDto> VenueList { get; set; }

        /// <summary>
        /// 网球水平
        /// </summary>
        public string? TennisLevel { get; set; } = "1.0";

        /// <summary>
        /// 工作场馆数量
        /// </summary>
        public int VenueCount { get; set; }

        /// <summary>
        /// 课程数量
        /// </summary>
        public int CourseCount { get; set; }

        /// <summary>
        /// 私教学生数量
        /// </summary>
        public int PersonalStudentCount { get; set; }

        /// <summary>
        /// 星级
        /// </summary>
        public double? Star { get; set; }
    }
}
